import { defineStore } from 'pinia'
export const useTodoStore = defineStore('todoStore', {
    state() {
        return {
            todoList: [],
            filterType: '0'
        }
    },
    getters: {
        // getters 函数，会接受一个参数 state，这里不推荐使用 this
        filteredTodoList(state) {
            if (state.filterType === '1') {
                // 返回 未完成的数据
                return state.todoList.filter((item) => item.isEnd === false)
            } else if (state.filterType === '2') {
                // 返回 已完成的数据
                return state.todoList.filter((item) => item.isEnd === true)
            } else {
                // 返回 全部
                return state.todoList
            }
        }
    },
    actions: {
        add(text) {
            this.todoList.push({
                id: Date.now(),
                text,
                isEnd: false
            })
        },
        finish(id) {
            //找到对应id的数组元素find((数组元素，下标)=>{判断规则})
            this.todoList.find(item => item.id === id).isEnd = true;
        },
        remove(id) {
            //找到目标元素的下标
            const index = this.todoList.findIndex((item) =>item.id === id)
            //删除该元素
            this.todoList.splice(index, 1);
        },
        setFilterType(type) {
            this.filterType = type
        }
    }
})